const {
    stringValidator: {
        isEmail,
    },
    CombinedPredicate: {
        not,
    },
} = rx
const validate = RxFormValidator.validator({
    rxElemValidators: [
        // RxElemValidator.notBlank('loginName', '[管理账号] 不能为空'),
        // RxElemValidator.notBlank('regMail', '[认证邮箱] 不能为空'),
        // RxElemValidator.notBlank('password', '[密码] 不能为空'),
        // RxElemValidator.notBlank('passwordConfirm', '[确认密码] 不能为空'),
        // RxElemValidator.notBlank('userType', '[用户类型] 不能为空'),

        RxElemValidator.limitLen('loginName', '[管理账号] 长度最大为 50 位', 50),
        RxElemValidator.limitLen('regMail', '[认证邮箱] 长度最大为 128 位', 128),
        RxElemValidator.limitLen('password', '[密码] 长度最大为 64 位', 64),
        RxElemValidator.limitLen('passwordConfirm', '[确认密码] 长度最大为 64 位', 64),

        RxElemValidator.create('password', '[密码] 与 [确认密码] 不一致', (_v, {password, passwordConfirm}) => password !== passwordConfirm),
        RxElemValidator.create('regMail', '[邮箱] 格式错误', not(isEmail)),
    ],
})
/**
 * @author rxliuli
 */
const app = new Vue({
    el: '#app',
    data() {
        return {
            form: new SysUser({
                roleIdList:[],
            }),
            userTypeMap: new Map(),
        }
    },
    methods: {
        async add() {
            if (await validate(this.form) && await ajaxOption({
                res: sysUserApi.add(this.form),
                danger: '添加失败',
                success: '添加成功',
            })) {
                forward('/system-config/admin_privilege')
            }
        },
    },
    computed: {
    },
    async mounted() {
        this.userTypeMap = await sysRoleApi.listOfMap()
    },
})